Compact disc for scheduled playing of audio tracks

ABSTRACT

Disclosed is an audio compact disc that includes a number of audio tracks, at least a portion of which are to be played at predetermined times when the audio disc is installed in a compact disc jukebox or similar player. Stored on the compact disc is a value indicating that at least a portion of the audio tracks are to be played at predetermined times. The stored value also specifies a predetermined sequence or play schedule that is to be used with the compact disc. When the compact disc is installed in a compact disc jukebox, the stored value is accessed by the jukebox controller and causes audio tracks that are scheduled for playing at predetermined times to be played at that time or immediately after any audio track that is being played at the predetermined time.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of application Ser. No. 08/784,450,filed Jan. 16, 1997, now U.S. Pat. No. 5,872,747. Priority from thefiling date of which is hereby claimed under 35 U.S.C. § 1.20.

FIELD OF THE INVENTION

The present invention relates to disc storage and selection players, andin particular, to jukeboxes containing disc players.

BACKGROUND OF THE INVENTION

Compact disc (CD) jukeboxes that store multiple CDs and allow users toselect particular audio tracks on a CD for play are common.Coin-operated CD jukeboxes are found in numerous commercialestablishments. A customer enters money in a coin-operated jukebox andmakes one or more selections, where each selection is one audio track onone CD. Typical CD jukeboxes create a queue of selections made, andsequentially play the selections in the queue. Some jukeboxes have abackground or idle mode, which becomes active when there are noselections from the queue. In the idle mode, one or more predeterminedaudio tracks may be played. If desired, the jukebox may be set so thatthe audio tracks played when in idle mode are commercials or other typesof announcements.

Existing methods of playing audio commercials during idle mode have thedisadvantage of only playing commercials when there are no userselections in the play queue. Typically, this occurs at the times whenfewer customers are in the business establishment, such as off-peakhours. It is desirable to have a system that provides the ability toplay audio commercials or announcements at predetermined times,regardless of whether user selections are on the queue.

Programming existing CD jukeboxes to play particular audio tracks duringidle mode requires that a programmer or other service personnelindividually program each CD jukebox. This is time consuming anduneconomical. A method of programming a jukebox to play segments on a CDin a particular sequence that does not require a programmer to havephysical access to a CD jukebox is desirable. It is also desirable toachieve the playing of selected audio announcements or commercials atpredetermined times without deviating substantially from the manner inwhich commercially available CD jukeboxes are configured and arranged.Further, it is desirable to have multiple sequences of playback so thatthe tracks on each individual CD that include commercials orannouncements can be played at different predetermined times duringselected days of the week.

SUMMARY OF THE INVENTION

In accordance with this invention, an apparatus and a computerimplemented method of scheduling and playing audio tracks on a recordingmedium, such as audio compact discs, is provided. A sequence CD is acompact disc containing one or more audio tracks, in particular audiotracks containing commercials or announcements, that are scheduled to beplayed at specific predetermined times of the day. The inventionmaintains schedules corresponding to one or more sequence CDs, and playsthe scheduled tracks at the scheduled times.

In accordance with the invention, a compact disc jukebox includes anaudio CD player of the type that receives commands and sends informationto attached devices, and a controller computer connected to the audio CDplayer. The controller computer stores schedules, an initializationprogram, and a sequence handler program. The schedules specify the timesto play individual audio tracks on the sequence CDs. When a new audio CDis installed in the jukebox, the initialization program instructs theaudio CD player to read the new audio CD and return informationpertaining to the audio CD. It then determines whether an audio CD is asequence CD. At predetermined periodic intervals, the sequence handlerdetermines, based on a current time of day and a day of the week,whether any audio tracks on the sequence CDs are scheduled to be playedat that particular time. If so, the sequence handler causes the audio CDplayer to play the scheduled audio track. The invention allows asequence CD to specify a schedule that corresponds to the CD, therebyallowing flexible scheduling of audio tracks on multiple sequence CDs.

In accordance with the invention, a CD audio track index value is storedon each CD in a CD audio track index location. The CD audio track indexlocation is an industry standard location that holds the number of audiotracks on a CD. Each sequence CD has one corresponding predeterminedschedule stored in the controller computer. Sequence CDs have stored, asthe CD audio track index value, a number corresponding to a schedulenumber, the number being outside of the normal range of CD audio trackindex values. During initialization of a new CD, the controller computersends a command to the audio CD player instructing the audio CD playerto read the CD audio track index value on the compact disc. In response,the audio CD player reads the CD audio track index value, and sends thevalue to the controller computer, which receives the value. Thecontroller computer then determines, based on the CD audio track's indexvalue, whether the CD is a normal audio CD or a sequence CD. Thisinformation is stored in the controller computer memory. Periodically,the controller computer, based upon a current day of the week, time ofday and the CD audio track index values, determines whether one or moreof the audio tracks on the sequence CDs are scheduled to be played. Ifone or more audio tracks are scheduled to be played at that particulartime, the controller computer sends a command to the audio CD playerinstructing the CD player to play the scheduled audio track.

In the currently preferred embodiment of the invention, the controllercomputer maintains a play queue that contains an ordered list of audiotracks to be played on the audio CD player. An operator can select audiotracks to be played, and a reference to the selected track is placed onthe end of the play queue. When the sequence handler determines that anaudio track on a sequence CD is scheduled to be played at that time, areference to the scheduled track is placed at the front of the playqueue.

In accordance with the invention, one or more schedules associatingaudio tracks on the sequence CDs with times of day are stored in thecontroller computer memory. The schedule information is used todetermine whether a scheduled audio track is associated with the currenttime of day. Preferably, the schedule information is stored in anonvolatile memory. In the preferred embodiment of the invention, theschedules associate audio tracks on a sequence CD with times of a dayand days of the week.

In the preferred operation of the invention, the scheduling of thesequence handler operation is independent of the playing of CD audiotracks, such that the determination by the sequence handler may occurduring the playing of a CD audio track.

As will be readily appreciated from the foregoing description, a CDjukebox formed in accordance with the invention allows the use ofmultiple sequence CDs and multiple corresponding schedules within the CDjukebox. New sequence CDs can be installed in the jukebox withoutrequiring reprogramming of the schedule information in the jukebox. Bydetermining, during the playing of a CD audio track, whether a CD audiotrack is scheduled to be played, and placing scheduled CD audio tracksat the front of the play queue, the invention allows CD audio tracks tobe scheduled and played during periods of heavy use of the jukebox,rather than merely during idle times. By utilizing a single value in theCD audio track index location to specify that a CD is a sequence CD andto further specify the corresponding predetermined schedule, theinvention employs a commercially available audio CD player that readsthe value at the CD audio track index location and sends this value toan external device. The invention can therefore be employed by modifyingexisting CD jukeboxes having such commercially available audio CDplayers contained therein. Conventional industry standard recordingmechanisms are employed to create sequence CDs, further enhancing theeconomy of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same becomesbetter understood by reference to the following detailed description,when taken in conjunction with the accompanying drawings, wherein:

FIG. 1 is a block diagram illustrating a CD jukebox architecture inaccordance with the invention;

FIG. 2 illustrates buffers that are shared between the normal playmodule and the sequence interrupt handler;

FIG. 3 illustrates tables for controlling sequencing in accordance withthe invention;

FIG. 4 is a flow diagram illustrating the processing within a normalplay module in accordance with the invention;

FIG. 5 is a flow diagram illustrating the process of initializing a CDin accordance with the invention; and

FIG. 6 is a flow diagram illustrating the processing within a sequenceinterrupt handler in accordance with the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

As will be better understood from the following description, the presentinvention is directed to an apparatus and method for controlling anaudio compact disc player to play audio selections at predeterminedschedules. That is, the invention controls the operation of a compactdisc player so that a particular audio selection will be played at apredetermined time (e.g., a chosen day at a particular time of day). Thefollowing description describes the invention in the context ofcontrolled interspersion of audio messages (e.g., announcements andadvertisements) with customer selected audio recording in CD jukeboxes.However, it is to be understood that the invention can be employed withother systems, such as home audio systems and personal computersconnected to a CD player.

FIG. 1 illustrates a CD jukebox architecture in accordance with theinvention. The invention employs an audio CD player 104 connected to amicroprocessor-based controller computer 108. The audio CD player 104 iscapable of receiving command signals from a device external to the audioCD player and sending information to the external device. The audio CDplayer 104 is preferably connected to the controller computer 108 by aserial line 106, such as an RS-422 line. The audio CD player 104 may bea CD mechanism assembly, such as the Rowe 6103301, manufactured by RoweInternational, of Grand Rapids, Mich. The Rowe 6103301 includes anoptical reader/player, a mechanism control and decoder assembly, and achanger mechanism. The optical reader/player included in the Rowe CDmechanism assembly is the model CDM3 manufactured by Philips ConsumerElectronics BV, of The Netherlands. The changer includes a plurality ofCD slots, each slot having at most one CD contained therein. The changerallows the CD mechanism assembly to select a single CD from one of theCD slots, and to play, upon command, a desired audio track from theselected CD. The CD mechanism assembly connects, by a conventionalmeans, to one or more speakers (not shown) for producing audio output.The CD mechanism assembly may also be a CD-ROM player connected to apersonal computer and capable of playing audio CDs. A number of CD-ROMplayers are commercially available. CD-ROM players generally communicatethrough a parallel port, rather than a serial line.

The controller computer 108 is preferably a microprocessor-basedcomputer, having a non-volatile memory such as read-only-memory (ROM),random-access-memory (RAM), a keyboard, and a display device. The ROM ispreferably an erasable programmable ROM (EPROM). Preferably, at leastsome of the RAM is battery backed-up RAM, which utilizes a battery tomaintain the contents of memory for a duration of time after power isremoved from the computer 108. Battery backed-up RAM is well known tothose skilled in this art, and need not be explained in further detail.It should be recognized by one skilled in this art, and others, that acontroller computer 108 can include other types of memory or storagedevices that maintain stored content when power is removed from thecomputer. The use of RAM and EPROM in the following discussion should beconsidered exemplary and not limiting.

The controller computer 108 includes three software modules, preferablystored in ROM: a "normal play" module 110, a "service" module 112, and a"sequence interrupt handler." As discussed in further detail below, thenormal play module 110 communicates with the CD player 104 over theserial line 106, controlling the operation of the CD player. The normalplay module directs the CD player 104 to play selected audio tracks onselected CDs. It further instructs the CD player to read selected CDsand return information regarding the number of audio tracks on each CD.

The service module 112 allows an operator to perform various maintenanceand updating functions. These include changing the time, modifyingpricing information, and entering new CDs that are to be initialized.

The sequence interrupt handler 114 is activated periodically by a timerinterrupt. The timer interrupt is generated by a real-time clockcomponent 122. As discussed in further detail below, the sequenceinterrupt handler 114 maintains information about CDs that are specifiedas sequence CDs. Sequence CDs contain audio tracks and a specificationof a particular sequence to apply to the CD. A sequence includes aschedule, and instructs the sequence interrupt handler of the time thateach audio track is to be played. The sequence interrupt handler, inturn, uses this information to instruct the normal play module to playparticular audio tracks.

The normal play module 110 maintains, in a play queue 118, a queue of CDaudio tracks to be played. When a user selects an audio track on a CD toplay, the normal play module 110 appends the CD slot number and audiotrack number of the selection to the end of the play queue 118. When thenormal play module is ready to play the next audio track, it removes thefirst entry in the play queue 118 from the play queue, and instructs theCD player 104, by sending a command over the serial line 106, to playthe designated audio track.

The normal play module 110 also maintains a CD index buffer 120 thatmaintains information pertaining to each CD loaded into a CD slot. As isindicated in FIG. 2, the CD index buffer 120 includes entries 204a-fthat are associated on a one-to-one basis with CD slots 206a-f. Each CDindex buffer entry 204a-f contains a numeric value equal to the numberof audio tracks on the CD in the corresponding slot 206a-f. Where a CDslot (i.e., 206d as depicted) is empty, the corresponding CD indexbuffer entry 204d contains a value of zero. Where a CD slot (e.g., 206ein FIG. 2) contains a sequence CD, the corresponding CD index bufferentry 204e also is zero . Thus, a value of zero in a CD index bufferentry 204a-f indicates to the normal play module 110 that auser-selectable CD does not exist in the corresponding CD slot 206a-f.

The CD index buffer 120 is maintained in a manner such that the contentsare not lost when the power to the system is turned off. A preferablemeans of providing this capability includes storing the CD index buffer120 in a battery backed-up RAM.

FIG. 2 also illustrates a play queue 118 that is a queue of selectionsto be played. Preferably the play queue is an ordered array of entries210a-e with each entry corresponding to one audio selection (i.e., aparticular track of a particular CD). In FIG. 2, each entry 210a-e inthe play queue 118 includes a CD slot number (212a-e in FIG. 2) and anaudio track number (214a-e). Each CD slot number 212a-e has a numericvalue that references a corresponding one of the CD slots 206a-f. Eachaudio track number 214a-e represents a particular audio track on the CDwithin the CD slot 206a-f referenced by the corresponding CD slot number212a-e. For example, as depicted in FIG. 2, the first entry 210a in theplay queue 118 contains the value three in the CD slot number field 212aand the value one in the CD audio track number 214a field. As indicatedby arrow 216a, this entry represents the information that the nextselection to be played is audio track number one on the CD in the thirdCD slot 206c. Similarly, as indicated by arrow 216b, the second entry210b in the play queue, having a CD slot number value of six and a CDaudio track number value of nine, represents the information that thesecond selection in the play queue is the ninth audio track in the sixthCD slot 206e.

As depicted in FIG. 2, the values in play queue entry 210d are zeros. Avalue of zero in the CD number field 212d of a play queue entry 210dindicates that the entry having the zero, and all entries below thisentry 210d, do not represent valid CD/track selections.

A preferable method of implementing a play queue 118 includes using acircular sequential queue having a pointer to the front of the queue anda pointer to the next address after the last entry in the queue. The"front" pointer 218 is incremented to remove the first entry from thequeue, and the "next" pointer 220 is incremented to append an entry tothe queue. The front and next pointers in the play queue "wrap around,"so that when either pointer moves beyond predetermined boundaries of thebuffer, it wraps around to the opposite boundary. Techniques ofmaintaining a circular sequential queue are well known in the art andneed not be explained in further detail here. As discussed in furtherdetail below, when the sequence interrupt handler 114 determines that anaudio track on a sequence CD is scheduled to be played, the sequenceinterrupt handler inserts an entry containing the CD number and audiotrack number of the scheduled audio track at the front of the play queue118. When the play queue is a circular sequential queue, as describedabove, inserting an entry at the front of the queue includesdecrementing the front pointer 218 to point to the newly inserted entry.

FIG. 3 illustrates tables stored in the controller computer memory andused by the sequence interrupt handler 114 (FIG. 1). A sequence CD table302 contains a list of sequence CDs that are in CD slots. At thebeginning of the sequence CD table 302 is a sequence CD count field 304containing a value representing the number of sequence CD entries 306a-cin the sequence CD table. Each sequence CD entry 306a-c includes twofields: a CD slot number field 308a-c and a sequence identifier field310a-c. Each CD slot number field 308a-c contains a numeric valuerepresenting the CD slot 206a-f that corresponds to the sequence CDrepresented by the sequence CD entry a-c. For example, in FIG. 3, thevalue 4 in the CD slot number field 306a of the first sequence CD entry308a indicates that the corresponding sequence CD is in the fourth CDslot 206d.

The sequence ID field 310a-c within a sequence CD entry 308a-c containsa value that identifies a particular, predetermined sequence for usewith the corresponding sequence CD. As depicted, the value 60 in thesequence ID field 310aof the first sequence CD entry 308a indicates thatthe corresponding sequence CD is set to use sequence number 60.

Preferably, the sequence CD table 302 is maintained in a memory thatretains the buffer contents when system power is turned off. Batterybacked-up RAM, as discussed above, is one means for providing thiscapability. As discussed in further detail below, the sequence CD table302 is used to initialize the CD player 104 upon power up.

The sequence interrupt handler 114 (FIG. 1) uses a set of sequencespecification tables 320 that specify the sequence and scheduling ofaudio segments on a sequence CD. The sequence specification tables 320are preferably stored within a non-volatile memory such as an EPROM. Thesequence information is predetermined and does not need to be modifiedduring the operation of the system. In the preferred embodiment, thesequence specification tables include four types of tables: a sequencetable 322, a plurality of day tables 324 and 330, a plurality of hourtables 326 and 332, and a plurality of minute/selection tables 328 and334. The sequence table 322 includes one entry for each predeterminedsequence that is used by the system. Preferably, each sequence has asequence number outside of the range of values that represent the numberof audio tracks on normal audio CDs. In the arrangement shown in FIG. 3,the sequence numbers begin at 60 and extend to 99, which allows sequencetable 322 to specify 40 different sequences.

Each entry in the sequence table 322 is a day table reference field(336a-d in FIG. 3). The day table reference fields contain referencesfor locating day tables 324 and 330 that corresponds to the sequencenumber associated with the sequence table entry. Preferably, the daytable reference field 336a-d is a two-byte address of the day tablereferenced. In the arrangement depicted in FIG. 3, the day tablereference field 336a for the entry associated with sequence 60 containsa reference to the day table 324.

Each day table 324 and 330 includes one entry for each day of the week.An entry in the day table 324 and 330 is an hour table reference field338a-c. An hour table reference field contains a reference for locatingan hour table 326 and 332. Preferably, the hour table reference fieldcontains a two-byte address of the hour table 326 and 332 referenced.The hour table reference fields 338a-c within a day table 324 canreference the same hour table 326 and 332 as other hour table referencefields within the same table, or they may reference different hourtables. Therefore, a day table may reference from one to seven hourtables. An hour table may be referenced by more than one day table.

An hour table 326 and 332 includes 24 entries, one for each hour of aday. An entry in the hour table 326 and 332 is a minute/selection tablereference field 340a-c. The minute/selection table reference field340a-c includes a reference for locating a minute/selection table 328and 334. Preferably, a minute/selection table reference field 340a-ccontains a two-byte address of the corresponding minute/selection table328 and 334. In the example depicted in FIG. 3, the minute/selectiontable reference field 340b corresponding to the hour of one o'clock a.m.contains a reference to the corresponding minute/select table 328. Theminute/selection table reference field 340c corresponding to the hour oftwo o'clock a.m. contains a reference to the minute/selection table 334.

In FIG. 3, the minute/selection table 328 contains informationrepresenting a schedule corresponding to the one o'clock am. time sloton Sundays. The first field of the minute/selection table 328 is aselection count field 342. The selection count field 342 contains avalue representing the number of selection entries 344a-c in theminute/selection table 328. Preferably, the selection count field 342 isa one-byte field having a numeric value. As depicted in FIG. 3, theselection count field 342 in the depicted minute/selection table 328contains a numeric value of three, indicating that three selectionentries 344a-c exist in the minute/selection table.

Each selection entry 344a-c includes two fields: a minute field 346a-cand a track field 348a-c. The minute field 346a-c contains informationrepresenting the minute within the corresponding hour that the audiosegment is to be played. The corresponding audio track field 348a-cwithin the selection entry field 344a-c contains informationrepresenting the audio track on the sequence CD that is to be played atthe designated time. In FIG. 3, the depicted minute field 346a containsthe value 25, indicating that the corresponding audio track is scheduledto be played at 25 minutes past the hour. The corresponding track field348a contains the value three, indicating that the third audio track ofthe sequence CD is to be played. The depicted selection entry 344bcontains the information that the seventh audio track is scheduled to beplayed at 40 minutes past the hour. The depicted selection entry 344ccontains the information that the 12th audio track of the CD is to beplayed at 55 minutes past the hour. As depicted in FIG. 3, and discussedabove, all of the selection entries 344a-c within the minute/selectiontable 328 refer to a one-hour time slot that begins on Sunday at oneo'clock am.

As discussed in further detail below, the sequence interrupt handler 114(FIG. 1) uses the set of sequence specification tables 320 of FIG. 3 toschedule audio tracks on the sequence CDs. Every 60 seconds, thesequence interrupt handler follows the reference links for each sequenceCD to determine whether any audio tracks on the sequence CD arescheduled to played at that time. If one or more audio tracks arescheduled to be played, the CD number and track number of the scheduledaudio track are placed at the front of the queue in the play queue 118(FIG. 2). If an audio segment is currently playing, the newly insertedCD/track reference will cause the corresponding scheduled CD segment tobe played upon completion of the current audio track. If no audiosegments are currently being played, the newly inserted reference willcause the corresponding audio segment to be played immediately.

Although each entry in an hour table 326 and 332 contains a reference toa minute/selection table 328 and 334, it is not required that each entry340a-c contain a reference to a unique minute/selection table 328. Forexample, as indicated in FIG. 3, the entry 340a corresponding to thehour of twelve o'clock midnight references the same minute/selectiontable 328 as the entry 340b, which corresponds to the one o'clock a.m.time slot. Similarly, the entry 338b in the day table 324 references thesame hour table 326 as the entry 338a. This indicates that the schedulefor a sequence CD having the sequence ID of 60 is the same on Monday asit is on Sunday and, further, that the schedule for that sequence CD isidentical in the midnight and one o'clock a.m. time blocks. Thisconfiguration provides flexibility and simplifies the construction ofthe sequence specification tables 320.

FIG. 4 illustrates the processing that occurs within the controllercomputer as directed by the normal play module 110 (FIG. 1) uponpower-up of the system. At a step 401, the controller computer 108initializes the CD player 104. As discussed above, the controllercomputer includes battery backed-up RAM that contains informationpertaining to all of the CDs in the system. Specifically, the CD indexbuffer 120 contains the number of audio tracks on each normal audio CDin a CD slot. The sequence CD table 302 contains the sequence ID numberfor every sequence CD in a CD slot. Typical CD players 104, and inparticular, the exemplary Phillips CDM3 CD player, do not storeinformation pertaining to individual CDs in battery backed-up RAM. TheCD player 104 includes in its memory a table containing informationpertaining to each CD in a CD slot. This information, however, is lostwhen the system power is shut off. At the step 401, the normal playmodule merges the information from the CD index buffer 120 and thesequence CD table 302, and sends the combined information over theserial line 106 to the CD player 104.

The following "player initialization" command format is utilized whensending this information to the exemplary Phillips CDM3 CD player:

    06 01 7E 5C 36 t1.sub.1 t2.sub.1 t1.sub.2 t2.sub.2 . . . t1.sub.n t2.sub.n . . . t1.sub.99 t2.sub.99 03 16

where t1_(n) and t2_(n) are the ASCII codes for the two digits that makeup the two-digit value representing the number of audio tracks in the CDthat is positioned within CD slot number n. Each of the numeric values,as shown above, is a hexadecimal number within a respective byte of thecommand.

When a sequence CD is found in the sequence CD table 302, the sequenceID number, as found in the sequence ID field 310a-c, is inserted in theplayer initialization command in the track number position correspondingto the CD slot number. For example, in the sequence CD table 302depicted in FIG. 3, the track number corresponding to CD slot numberfour placed in the player initialization command will be the value 60,as retrieved from the sequence ID field 310a having the corresponding CDslot number field 308a with a value of 4.

If the CD index buffer 120 contains a value of zero in an entrycorresponding to a CD slot number, and there is no entry in the sequenceCD table 302 for that CD slot number, then ASCII zeros (30, 30) areplaced in the corresponding position in the above player initializationcommand sent to the CD player. Upon receiving the above command, the CDplayer 104 builds a table containing the number of audio tracks for eachnormal audio CD and the sequence ID for each sequence CD. Since the CDplayer 104 is controlled by commands from the controller computer 108,the CD player does not need to distinguish a normal audio CD from asequence CD.

At a step 402, a test is made to determine whether a selection to playexists. This determination is made by examining the play queue 118. Ifany valid entries exist within the play queue 118, then there is aselection to play. If, at the step 402, there is a selection to play, ata step 404, the first entry in the play queue, which is the entrycorresponding to the selection to be played, is removed from the playqueue. As discussed above, the play queue is preferably implemented as acircular sequential list, and removing the first entry from the playqueue includes incrementing the pointer so that it points to the secondentry.

At a step 406, the CD player 104 plays the selection to be played.Playing the selection includes sending a command from the normal playmodule 110 to the CD player 104 over the serial line 106. The commandincludes values representing the desired CD slot 206a-f (FIG. 2) and adesired audio track on the CD within the specified slot. The PhillipsCDM3 CD player specifies the format of this command, which is describedin further detail below. Other manufacturers and models of CD playershave documented command lists, which may differ. After playing the CD,the processing loops back to the step 402 to determine whether anotherCD selection is ready to play.

If, at the step 402, a determination is made that there is no selectionto play, at a step 408, a test is made to determine whether there areany CDs that need to be initialized. A preferable method of indicatingthat one or more CDs need to be initialized is to utilize aninitialization table 116 (FIG. 1) having one entry for each CD slot,where the association between the initialization table entry and thecorresponding CD slot is determined by the sequential position of theentry in the initialization table 116. A value, such as zero, in aninitialization table entry indicates that the CD in the corresponding CDslot does not need initialization. A second value, such as a non-zerovalue, in the initialization table entry indicates that the CD in thecorresponding CD slot requires initialization. The service module 112(FIG. 1) sets the initialization table entries to indicate thatinitialization is required for a CD, in response to an action performedby an operator, such as installation of a new CD. The normal play moduleclears the value in the initialization table entry when thecorresponding CD is initialized. If there are no CDs to initialize, theprocessing loops back to repeat the test at the step 402. If, at thestep 408, there exist one or more CDs that need to be initialized, at astep 412, the CD is initialized, as discussed in further detail below.After initializing the CD, the processing loops back to the step 402.

Preferably, the service module 112 and the sequence interrupt handler114 execute asynchronously with the operation of the normal play module110. That is, at any time during the operation of the normal play modulethe service module 112 may set an entry in the initialization table toindicate that a CD requires initialization. Similarly, the sequenceinterrupt handler 114 may add a new entry to the play queue 118 duringthe playing of a CD. Therefore, the test at the step 402 to determinewhether there is a selection to play or the test at the step 408 todetermine whether any CDs require initialization may result in apositive determination on any loop through the processing illustrated inFIG. 4.

FIG. 5 illustrates in further detail the processing that occurs as partof the step 412 of initializing a CD. Prior to describing FIG. 5, anexplanation of CD indices and a sequence ID threshold is provided.

Audio CDs contain, in addition to audio data, information that describesthe contents of the audio CDs. This information includes a CD audiotrack index, which indicates the number of audio tracks, or audiosegments, included on the CD. The information also includes data thatdescribes the duration and starting position of each audio track.Industry standard recording processes receive, as input, a collection ofaudio tracks to be imprinted on an audio CD. Part of the standardrecording process involves writing the information, including the numberof audio tracks, on each audio CD. An industry standard, known as the"Compact Disc-Digital Audio (CD-DA) Standard," defines the recordedformat of a compact disc and a specific communications protocol betweenthe CD player 104 and interconnected devices such as the controllercomputer. The CD-DA standard is specified in the InternationalElectrotechnical Commission (IEC) document IEC 908:1987, available fromthe American National Standards Institute, of New York. The protocolallows external devices to control operation of the CD audio player. Theprotocol also allows an external device to query the CD audio player forthe CD audio track index on a selected audio CD. According to the CD-DAstandard, the CD audio track index is the only digital information thatcan be obtained by an external device interfacing with a CD player.

In accordance with the present invention, sequence CDs are identified bystoring a value in the position of the CD audio track index on thesequence CD. Specifically, the value used to identify a sequence CD is anumeric value greater than a threshold value, wherein the thresholdvalue is greater than or equal to the highest number of audio tracksthat can exist on normal audio CDs. In terms of the invention, thisthreshold value is referred to as the sequence ID threshold. Byevaluating whether a CD audio track index value on an audio CD exceedsthe sequence ID threshold, the method of the present inventiondetermines whether a CD is a sequence CD or a normal audio CD.

A preferable method of recording a CD audio track index for a sequenceCD includes creating a total number of audio tracks equal to the desiredCD audio track index, or sequence ID. One or more audio tracks may beblank, in order to create the correct total number of audio tracks.Using the method allows the invention to format sequence CDs accordingto the industry standard recording process, discussed above, writing thetotal number of audio tracks onto the audio CD in the standard positionfor the CD audio track index. In this manner, the invention economicallyemploys standard recording processes to create sequence CDs, which aredifferentiated from normal CDs by the value stored as the audio trackindex (i.e., the number of tracks indicated as being included on theCD).

Turning now to FIG. 5, the step 412 of initializing a CD begins byreading a CD audio track index from the CD. Reading the CD audio trackindex includes a step 502 of sending a command, referred to as an indexquery, from the normal play module in the controller computer to the CDplayer 104, and a step 503 of receiving a response from the CD player.The index query and the response are transmitted over the serial line106. The index query that is sent at the step 502 has a format that isparticular to the CD player, and may vary among different models of CDplayers. The Phillips CDM3, which is employed in the currently preferredembodiments of the invention, employs a seven-byte index query of thefollowing form:

    01 60 43 d1 d2 03 28

As shown above, each byte of the index query is a hexadecimal number.The fourth and fifth bytes, shown above as d1 and d2, contain the ASCIIcode for the first digit of the disc slot number, and the ASCII code forthe second digit of the slot number, respectively. The remaining valuesin the index query are fixed or predetermined command codes. Forexample, the following command instructs the CD player to read the discin CD slot number five:

    01 60 43 30 35 03 28

where "30" is the hexadecimal ASCII code for zero, and "35" is thehexadecimal ASCII code for five.

The CD player, in response to the index query, returns one of tworesponses. For example, with respect to the Phillips CDM3 CD player, ifthe CD player does not find a disc at the location designated by theinitialize command, the following command is returned:

    02 60 60 43 d1 d2 03 41

where d1 and d2 represent the CD slot number designated in the indexquery. For example, the following response to the above exemplary indexquery indicates that a disc was not found at CD slot number five:

    02 60 60 43 30 35 03 41

If the Phillips CDM3 CD player finds a disc within the designated CDslot, the CD player returns the following command:

    02 60 60 42 d1 d2 t1 t2 30 31 03 x

where d1 and d2 represent the CD slot number, as described above, and t1and t2 are the ASCII codes for the two digits that make up the two-digitvalue representing the number of audio tracks in the designated CD. Thelast byte of the response, designated by "x" above, does not have afixed value. The method of the present invention, therefore disregardsthis byte when examining the response. For example, in response to theabove index query, the CD player may return the following command:

    02 60 60 42 30 35 32 33 30 31 03 x

The above response indicates that a disc exists within CD slot number05, and that the disc contains 23 audio tracks, since the ASCII codes 32and 33 represent the digits two and three, respectively.

At a step 504, the normal play module evaluates the received command,and a test is made to determine whether a CD exists in the specified CDslot. If, at the step 504, a CD does not exist in the CD slot, thenormal play module stores a value of zero into the CD index buffer entry204a-f corresponding to the specified CD slot. Initialization processingfor the specified CD slot is thereafter complete.

If, at the step 504, a CD exists in the designated CD slot, at a step506, a test is made to determine whether the CD is a sequence CD.Specifically, this test is performed by determining whether the CD audiotrack index exceeds the CD sequence ID threshold. In the currentlypreferred embodiments of the invention, the sequence ID threshold has avalue of 59, which allows for audio CDs with up to 59 audio tracks. If,at the step 506, the CD audio track index value is found to not exceedthe sequence ID threshold, at a step 508, the CD audio track index valueis stored into the CD index buffer 120 (FIG. 2) in the entry 204a-fcorresponding to the designated CD slot number. Upon storing the CDindex buffer at the step 508, the process of initializing a CD iscomplete.

If, at the step 506, the CD audio track index is found to exceed thesequence ID threshold, at a step 510, a value of zero is stored in theCD index buffer 120 at the entry 204a-f corresponding to the designatedCD slot number. As discussed above, a value of zero indicates that anormal audio CD does not exist within the CD slot corresponding to theentry (i.e., the CD slot is empty or contains a sequence CD).

At a step 512, the sequence CD count field 304 (FIG. 3) within thesequence CD table 302 is incremented by one to indicate that anadditional sequence CD is installed. At a step 514, data pertaining tothe sequence CD is stored in an entry 306a-c of the sequence CD table302. Specifically, the number of the CD slot containing the sequence CDis stored in the CD slot number field 308a-c, and the CD audio trackindex value is stored in the sequence ID field 310a-c. Upon storing thesequence CD data in the sequence ID buffer, the process of initializingthe sequence CD is complete.

Concurrently with the processing by the normal play module 110, asdescribed above, the system periodically triggers a sequence interrupt.Preferably, the control computer 108 (FIG. 1) includes a batterybacked-up real-time clock component 122, such as the RTC 72421 clockchip, manufactured by Fox Electronics of Fort Meyers, Fla. In accordancewith the invention, the clock component 122 is initialized toperiodically generate a sequence interrupt. The currently preferredperiod between sequence interrupts is 60 seconds. When a sequenceinterrupt is triggered, the sequence interrupt handler 114 is invoked.FIG. 6 illustrates the processing 602 that occurs within the sequenceinterrupt handler 114 each time a sequence interrupt is triggered.

At a step 604 a test is made to determine whether any sequence CDs areinstalled in the system. This test is performed by examining thesequence CD count field 304 within the sequence CD table 302 (FIG. 3). Anon-zero value indicates that at least one sequence CD is installed. Ifno sequence CDs are installed, as indicated by a zero value in thesequence CD count field 304, processing of the sequence interrupt iscomplete.

If at least one sequence CD is installed, the sequence interrupt handler114 enters a loop, beginning at the first sequence CD entry 306a of FIG.3. The loop begins at a step 606, where the next sequence CD entry 306ais read. Specifically, the sequence ID field 310a within the firstsequence CD entry 306a is extracted and used to locate a correspondingday table reference field 336a-d in the sequence table 322. At a step608, the information within the day table reference field 336a-d isread. This provides a reference, or address to, a day table 324 and 330corresponding to the sequence ID specified in the sequence ID field310a.

At a step 610, the sequence interrupt handler obtains the proper hourtable address from the hour table reference field 338a-c of the daytable 324 and 330. This step includes determining, from the system clockcomponent 120, the current day of the week, and locating an entry withinthe day table 324 and 330 corresponding to the current day of the week.

Having a reference, such as an address, to an hour table 326 and 332, ata step 612, the sequence interrupt handler obtains an address of aminute/selection table 328 and 334 from the hour table 326 and 332. Thisstep includes obtaining, from the system clock component 120, thepresent hour of the day, and using this information to locate the properminute/selection table reference field 340a-c within the hour table 326and 332. For example, a time between midnight and one o'clock a.m.indicates that the first entry in the hour table, e.g., the entrycorresponding to the twelve o'clock a.m. hour, contains a reference tothe proper minute/selection table.

Having located the proper minute/selection table 328 and 334, thesequence interrupt handler scans the minute/selection table for aselection to be played, at a step 613. This step includes obtaining,from the system clock component, the present number of minutes past thehour, and locating a selection entry 344a-c corresponding to the minutesvalue.

At a step 614, a test is made to determine whether one of the selectionentries 344a-c corresponds to the present time, and therefore that asequence CD selection is to be played. If a sequence CD selection is tobe played, at a step 616, the sequence interrupt handler stores theselection into the play queue 118 (FIG. 1). This step includesextracting the track field 348a-c from the selection entry 344a-ccorresponding to the selection to be played. The sequence interrupthandler 114 stores the CD slot number, obtained from the CD slot numberfield 308a-c in the sequence CD table 302, and the track number,obtained from the track field 348a-c in the minute/selection table 328and 334 into the play queue 118. Processing then loops back to step 612,where scanning of the minute/selection table continues, to find anyadditional entries corresponding to the present number of minutes pastthe hour. In this manner, a plurality of selections may existcorresponding to a particular minute of the day. As discussed above, newCD audio segments inserted into the play queue 118 are placed at thebeginning of the queue. Therefore, if more than one selection entry344a-c corresponding to the current minute of the day exists, they willbe entered into the play queue 118 in the reverse order that they existin the minute/selection table 328 and 334.

If, at the step 614, a sequence CD selection to be played is not found,at a step 618, the sequence interrupt handler examines the sequence CDtable 302 to determine if another sequence CD exists. If one is found,the processing loops back to the step 606 where the next sequence CDentry 306a-c is read, and the searching of the sequence specificationtables 320 corresponding to the sequence CD is performed. If, at thestep 618, no more sequence CDs exist, the processing of the sequenceinterrupt is complete.

Referring now to FIG. 3, an exemplary processing of a sequence interruptby the sequence interrupt handler 114 is discussed. In the followingexample, it is assumed that the current day and time are Sunday at 1:40a.m. The first entry 306a within the sequence CD table 302 is read andthe value of 60 within the sequence ID field 310a indicates that thecorresponding sequence CD utilizes sequence number 60. At the entry forsequence 60 within the sequence table 322, the contents of the day tablereference field 336a provide the address of the corresponding day table324. The hour table reference field 338a corresponding to Sundayprovides the address to the hour table 326 for Sunday. Within the hourtable 326, the minute/selection table reference field 340b correspondingto one o'clock a.m. provides the address of the minute/selection table328 corresponding to the one o'clock a.m. time slot. Scanning theminute/selection table, the sequence interrupt handler 114 locates aselection entry 344b corresponding to 40 minutes past the hour. Thetrack field 348b within the selection entry 344b indicates that trackseven of the sequence CD is scheduled to be played at this time.Returning to the entry 306a corresponding to the sequence CD, the valueof four within the CD slot number field 308a provides the CD slot numberfor the sequence CD. The CD slot number/track number combination offour/seven is inserted at the front of the queue in the play queue 118.

A similar processing is then performed for the sequence CD correspondingto the entry 306b in the sequence CD table 302, which is associated witha sequence number 61. Although not indicated on FIG. 3, the processingsequence includes the same series of steps to determine whether a trackof the associated sequence CD is to be played at the current day andtime. Next, processing of the entry 306c is performed. The entry 306cindicates that CD slot number 18 is a sequence CD having sequence number60. Since the sequence ID field 310c of the entry 306c specifies thatsequence 60 is to be used, the processing follows the same traversal oftables as described above for the entry 306a. This results in a newentry inserted at the front of the queue in the play queue 118, theentry having a value of 18 in the CD slot number field 212a, and a valueof 7 in the track number field 214a.

As will be readily apparent to one skilled in this art, and others, theabove described sequence specification tables 320 can be modified, ortables added, to include additional scheduling information. For example,a table similar to the day table can be used to schedule audio segmentsaccording to individual months of the year. Alternatively, ranges ofdates can be added to the sequence specification tables to indicate thata minute/selection table 328 and 334 is to be employed between specifieddates of a year. This would allow, for example, audio tracks on asequence CD to be scheduled around holidays, seasons, or other annualevents. These audio tracks could then be scheduled to play annually,between the specified dates of each year.

While the preferred embodiment of the invention has been illustrated anddescribed, it will be appreciated that various changes can be madetherein without departing from the spirit and scope of the invention.

The embodiments of the invention in which an exclusive property orprivilege is claimed are defined as follows:
 1. An audio compact discfor storing a plurality of audio tracks, the audio compact discincluding a CD audio track index location storing a CD audio track indexvalue for access by an audio compact disc player, wherein the CD audiotrack index value is a numeric value indicative of the number of audiotracks stored on the audio compact disc and also indicative of apredetermined schedule for playing at least one of the audio tracks. 2.The audio compact disc of claim 1, wherein the CD audio track indexvalue is a numeric value between 60 and 99 inclusive.
 3. The audiocompact disc of claim 1, wherein the predetermined schedule specifies aplurality of times of day, each time of day corresponding to an audiotrack on the audio compact disc and indicative of a time to play thecorresponding audio track.
 4. The audio compact disc of claim 1, whereinthe predetermined schedule specifies a plurality days of a week, eachday of a week corresponding to at least one audio track on the audiocompact disc and indicative of a day of a week to play the correspondingat least one audio track.
 5. The audio compact disc of claim 1, whereinthe audio compact disc player that accesses the CD audio track indexvalue is of the type that provides the CD audio track index value to anexternal device in response to a command signal sent from the externaldevice to the audio compact disc player, and wherein the CD audio trackindex value is a numeric value indicative of the number of audio tracksstored on the audio compact disc and also is indicative of apredetermined schedule for playing at least one of the audio tracks. 6.The audio compact disc of claim 5, wherein the external device containsinstructions for determining whether the audio compact disc includes aCD audio track index value indicative of a predetermined schedule forplaying at least one of the audio tracks.
 7. The audio compact disc ofclaim 5, wherein the external device includes a storage device havingthe predetermined schedule stored thereon.
 8. The audio compact disc ofclaim 7, wherein the storage device has a plurality of predeterminedschedules stored thereon, and wherein the CD audio track index valuespecifies one of the plurality of predetermined schedules.
 9. The audiocompact disc of claim 5, wherein the external device includesinstructions for:determining, based upon a current time of day and theCD audio track index value, whether at least one audio track on theaudio compact disc is scheduled to be played at approximately thecurrent time of day; and, if so, sending a scheduled play command to theaudio player, the scheduled play command instructing the audio player toplay the at least one audio track that is scheduled to play atapproximately the current time of day.
 10. The audio compact disc ofclaim 5, wherein at least one of the audio tracks is blank.
 11. An audiocompact disc for storing a plurality of audio tracks, the audio compactdisc including a CD audio track index location storing a CD audio trackindex value for access by an audio compact disc player of the type thatprovides the CD audio track index value to an external device inresponse to a command signal sent from the external device to the audiocompact disc player, wherein the CD audio track index value is a numericvalue indicative of a predetermined schedule for automatically playingat least one of the audio tracks.
 12. The audio compact disc of claim11, wherein the predetermined schedule specifies a plurality of times ofday, each time of day corresponding to an audio track on the audiocompact disc and indicative of a time to play the corresponding audiotrack.
 13. The audio compact disc of claim 11, wherein the externaldevice includes a storage device having the predetermined schedulestored thereon.
 14. The audio compact disc of claim 13, wherein thestorage device has a plurality of predetermined schedules storedthereon, and wherein the CD audio track index value specifies one of theplurality of predetermined schedules.
 15. The audio compact disc ofclaim 11, wherein the external device includes instructionsfor:determining, based upon a current time of day and the CD audio trackindex value, whether at least one audio track on the audio compact discis scheduled to be played at approximately the current time of day; and,if so, sending a scheduled play command to the audio player, thescheduled play command instructing the audio player to play the at leastone audio track that is scheduled to play at approximately the currenttime of day.
 16. An audio compact disc comprising:a plurality of audiotracks; means for specifying a predetermined schedule for playing atleast one of the audio tracks.
 17. The audio compact disc of claim 16,further comprising means for specifying the number of audio tracksstored on the audio compact disc.